package org.example.erpapiservicespringmongoimpl.doc;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Document(collection = "orders")
public class OrderDoc {
    @Id
    private String id;
    private Date orderDate;
    private Date arrivalDate;
    private Date shipDate;
    @Field(name="customer.id")
    private Integer customerId;
    @Field(name="customer.name")
    private String customerName;
    @Field(name="employee.id")
    private String employeeId;
    @Field(name="employee.name")
    private String employeeName;
    @Field(name="employee.phone")
    private String employeePhone;
    @Field(name="shipInfo.freight")
    private BigDecimal freight;
    @Field(name="shipInfo.shipper.id")
    private Integer shipperId;
    @Field(name="shipInfo.shipper.name")
    private String shipperName;
    @Field(name="shipInfo.phone")
    private String phone;
    @Field(name="shipInfo.contact")
    private String contact;
    @Field(name="shipInfo.trackingNumber")
    private String trackingNumber;
    @Field(name="shipInfo.shipAddress")
    private String shipAddress;
    @Field(name="shipInfo.shipProvince")
    private String shipProvince;
    @Field(name="shipInfo.shipCity")
    private String shipCity;
    @Field(name="shipInfo.shipRegion")
    private String shipRegion;
    @Field(name="totalAmount")
    private Double totalPrice;
    private List<OrderDetailDoc> details;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Date getOrderDate() {
        return orderDate;
    }

    public void setOrderDate(Date orderDate) {
        this.orderDate = orderDate;
    }

    public Date getArrivalDate() {
        return arrivalDate;
    }

    public void setArrivalDate(Date arrivalDate) {
        this.arrivalDate = arrivalDate;
    }

    public Date getShipDate() {
        return shipDate;
    }

    public void setShipDate(Date shipDate) {
        this.shipDate = shipDate;
    }

    public Double getTotalPrice() {
        return totalPrice;
    }

    public void setTotalPrice(Double totalPrice) {
        this.totalPrice = totalPrice;
    }

    public List<OrderDetailDoc> getDetails() {
        return details;
    }

    public void setDetails(List<OrderDetailDoc> details) {
        this.details = details;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public Integer getCustomerId() {
        return customerId;
    }

    public void setCustomerId(Integer customerId) {
        this.customerId = customerId;
    }
    public String getEmployeeId() {
        return employeeId;
    }

    public void setEmployeeId(String employeeId) {
        this.employeeId = employeeId;
    }

    public String getEmployeePhone() {
        return employeePhone;
    }

    public void setEmployeePhone(String employeePhone) {
        this.employeePhone = employeePhone;
    }

    public String getEmployeeName() {
        return employeeName;
    }

    public void setEmployeeName(String employeeName) {
        this.employeeName = employeeName;
    }

    public BigDecimal getFreight() {
        return freight;
    }

    public void setFreight(BigDecimal freight) {
        this.freight = freight;
    }

    public Integer getShipperId() {
        return shipperId;
    }

    public void setShipperId(Integer shipperId) {
        this.shipperId = shipperId;
    }

    public String getShipperName() {
        return shipperName;
    }

    public void setShipperName(String shipperName) {
        this.shipperName = shipperName;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getContact() {
        return contact;
    }

    public void setContact(String contact) {
        this.contact = contact;
    }

    public String getTrackingNumber() {
        return trackingNumber;
    }

    public void setTrackingNumber(String trackingNumber) {
        this.trackingNumber = trackingNumber;
    }

    public String getShipAddress() {
        return shipAddress;
    }

    public void setShipAddress(String shipAddress) {
        this.shipAddress = shipAddress;
    }

    public String getShipProvince() {
        return shipProvince;
    }

    public void setShipProvince(String shipProvince) {
        this.shipProvince = shipProvince;
    }

    public String getShipCity() {
        return shipCity;
    }

    public void setShipCity(String shipCity) {
        this.shipCity = shipCity;
    }

    public String getShipRegion() {
        return shipRegion;
    }

    public void setShipRegion(String shipRegion) {
        this.shipRegion = shipRegion;
    }
}
